﻿using System;
using System.Collections.Generic;
//using System.Linq;
using System.Web;
using System.Configuration;


namespace cz.uhul.DSMLv2.Services
{





  public abstract class LdSecurityModel : ConfigurationElement
  {


    /// <summary>
    /// resolves operation principal identity.
    /// This can be constant string containing valid DN, 
    /// or <c>cz.uhul.WebSupport.ConfigurationPropertyValueHandlers</c>
    /// that replaces token in runtime with valid AuthZ DN
    /// </summary>
    [ConfigurationProperty("LdOperationPrincipal", DefaultValue = null, IsRequired = true, IsKey = false)]
    public virtual string LdOperationPrincipal
    {
      get { return (string)this["LdOperationPrincipal"]; }
      set { this["LdOperationPrincipal"] = value; }
    }





    /// <summary>
    /// get / set security access token Superior path. Security token RDN is GUID
    /// placed under given superpath
    /// </summary>
    [ConfigurationProperty("LdSecurityTokenSuperPath", DefaultValue = null, IsRequired = true, IsKey = false)]
    public virtual string LdSecurityTokenSuperPath
    {
      get { return (string)this["LdSecurityTokenSuperPath"]; }
      set { this["LdSecurityTokenSuperPath"] = value; }
    }






    /// <summary>
    /// get / set security access token owner attribute name. name is RDN value.
    /// </summary>
    [ConfigurationProperty("LdSecurityTokenOwnerAttribute", DefaultValue = null, IsRequired = true, IsKey = false)]
    public virtual string LdSecurityTokenOwnerAttribute
    {
      get { return (string)this["LdSecurityTokenOwnerAttribute"]; }
      set { this["LdSecurityTokenOwnerAttribute"] = value; }
    }




  }

}